// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.geocities.com/kpdus/jad.html // Decompiler options: braces fieldsfirst space lnc package android.support.v4.util; public class SparseArrayCompat { private static final Object a = new Object(); private boolean b; private int c[]; private Object d[]; private int e; public SparseArrayCompat() { this(10); } public SparseArrayCompat(int i) { b = false; int j = b(i); c = new int[j]; d = new Object[j]; e = 0; } static int a(int i) { int j = 4; do { label0: { if (j < 32) { if (i > -12 + (1 << j)) { break label0; } i = -12 + (1 << j); } return i; } j++; } while (true); } private static int a(int ai[], int i, int j, int k) { int l = i + j; int i1 = i - 1; int j1; for (j1 = l; j1 - i1 > 1;) { int k1 = (j1 + i1) / 2; if (ai[k1] < k) { i1 = k1; } else { j1 = k1; } } if (j1 == i + j) { j1 = -1 ^ i + j; } else if (ai[j1] != k) { return ~j1; } return j1; } private void a() { int i = e; int ai[] = c; Object aobj[] = d; int j = 0; int k = 0; for (; j < i; j++) { Object obj = aobj[j]; if (obj == a) { continue; } if (j != k) { ai[k] = ai[j]; aobj[k] = obj; } k++; } b = false; e = k; } static int b(int i) { return a(i * 4) / 4; } public void append(int i, Object obj) { if (e != 0 && i <= c[-1 + e]) { put(i, obj); return; } if (b && e >= c.length) { a(); } int j = e; if (j >= c.length) { int k = b(j + 1); int ai[] = new int[k]; Object aobj[] = new Object[k]; System.arraycopy(c, 0, ai, 0, c.length); System.arraycopy(((Object) (d)), 0, ((Object) (aobj)), 0, d.length); c = ai; d = aobj; } c[j] = i; d[j] = obj; e = j + 1; } public void clear() { int i = e; Object aobj[] = d; for (int j = 0; j < i; j++) { aobj[j] = null; } e = 0; b = false; } public void delete(int i) { int j = a(c, 0, e, i); if (j >= 0 && d[j] != a) { d[j] = a; b = true; } } public Object get(int i) { return get(i, null); } public Object get(int i, Object obj) { int j = a(c, 0, e, i); if (j < 0 || d[j] == a) { return obj; } else { return d[j]; } } public int indexOfKey(int i) { if (b) { a(); } return a(c, 0, e, i); } public int indexOfValue(Object obj) { if (b) { a(); } for (int i = 0; i < e; i++) { if (d[i] == obj) { return i; } } return -1; } public int keyAt(int i) { if (b) { a(); } return c[i]; } public void put(int i, Object obj) { int j = a(c, 0, e, i); if (j >= 0) { d[j] = obj; return; } int k = ~j; if (k < e && d[k] == a) { c[k] = i; d[k] = obj; return; } if (b && e >= c.length) { a(); k = -1 ^ a(c, 0, e, i); } if (e >= c.length) { int l = b(1 + e); int ai[] = new int[l]; Object aobj[] = new Object[l]; System.arraycopy(c, 0, ai, 0, c.length); System.arraycopy(((Object) (d)), 0, ((Object) (aobj)), 0, d.length); c = ai; d = aobj; } if (e - k != 0) { System.arraycopy(c, k, c, k + 1, e - k); System.arraycopy(((Object) (d)), k, ((Object) (d)), k + 1, e - k); } c[k] = i; d[k] = obj; e = 1 + e; } public void remove(int i) { delete(i); } public void removeAt(int i) { if (d[i] != a) { d[i] = a; b = true; } } public void removeAtRange(int i, int j) { for (int k = Math.min(e, i + j); i < k; i++) { removeAt(i); } } public void setValueAt(int i, Object obj) { if (b) { a(); } d[i] = obj; } public int size() { if (b) { a(); } return e; } public Object valueAt(int i) { if (b) { a(); } return d[i]; } }